﻿namespace System.Transactions
{
#if !NET46
    /// <summary>
    /// 提供创建事务作用域的其他选项。
    /// </summary>
    public enum TransactionScopeOption
    {
        /// <summary>
        /// 作用域要求事务，如果当前已经存在一个事务，则使用当前的事务，否则将创建一个新的事务。
        /// 该选项是默认值。
        /// </summary>
        Required,
        /// <summary>
        /// 永远为当前作用域创建新的事务。
        /// </summary>
        RequiresNew,
        /// <summary>
        /// 当前作用域不使用事务，如果已经在事务当中，则抑制当前事务。作用域的所有操作都在没有事务的情况下工作。
        /// </summary>
        Suppress,
    }

    /// <summary>
    /// 指定事务的隔离级别。
    /// </summary>
    public enum IsolationLevel
    {
        Serializable,
        RepeatableRead,
        ReadCommitted,
        ReadUncommitted,
        Snapshot,
        Chaos,
        Unspecified,
    }

    /// <summary>[Supported in the .NET Framework 4.5.1 and later versions] Specifies whether transaction flow across thread continuations is enabled for <see cref="T:System.Transactions.TransactionScope" />.</summary>
    public enum TransactionScopeAsyncFlowOption
    {
        Suppress,
        Enabled,
    }
#endif
}
